package com.liuxinlong.modules.common.service;

import java.util.List;
import java.util.Map;

/**
 * 通用方法接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022-03-01
 */
public interface CommonService{
    /**
     * 生成标准编码
     *
     * @return 标准编码
     */
    String generateStandardCode();

    /**
     * 生成ecr编码
     *
     * @return ecr编码
     */
    String generateEcrCode();

    /**
     * 生成ecn编码
     *
     * @return ecn编码
     */
    String generateEcnCode();

    /**
     * 获取通知信息
     *
     * @return 通知信息列表
     */
    List<Map<String,Object>> getNotices();

    /**
     * 获取用户头像等基本信息
     *
     * @param userId 用户id
     * @return 用户头像基本信息
     */
    Map<String,Object> queryUserHeader(String userId);

    /**
     * 修改通知未读状态
     *
     * @param id id
     */
    void changeReadState(String id);

    /**
     * 清空未读通知
     *
     * @param title title
     */
    void clearReadState(String title);

    /**
     * 查询在线人数
     *
     * @return 在线人数
     */
    int getOnlineCount();

    /**
     * 关注、取消关注
     *
     * @param userId 用户id
     */
    void followUser(String userId);

    /**
     * 处理待办信息
     *
     * @param id 待办id
     * @param remark 备注
     */
    void dealNeedMatter(String id,String remark);

    /**
     * 获取项目详情
     *
     * @param id 项目id
     * @return 项目详情
     */
    Map<String,Object> getProjectDetail(String id);
}
